/******************************************************************************
 *
 * Copyright(c) 2016 - 2017 Realtek Corporation. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify it
 * under the terms of version 2 of the GNU General Public License as
 * published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
 * more details.
 *
 ******************************************************************************/

#ifndef _HALMAC_TX_DESC_IE_NIC_H_
#define _HALMAC_TX_DESC_IE_NIC_H_
#if (HALMAC_8814B_SUPPORT)

#define IE0_GET_TX_DESC_IE_END(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x00, 31, 1)
#define IE0_SET_TX_DESC_IE_END(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x00, 31, 1, __Value)
#define IE0_GET_TX_DESC_IE_UP(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x00, 30, 1)
#define IE0_SET_TX_DESC_IE_UP(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x00, 30, 1, __Value)
#define IE0_GET_TX_DESC_IE_NUM(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x00, 24, 4)
#define IE0_SET_TX_DESC_IE_NUM(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x00, 24, 4, __Value)
#define IE0_GET_TX_DESC_ARFR_TABLE_SEL(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x00, 19, 1)
#define IE0_SET_TX_DESC_ARFR_TABLE_SEL(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x00, 19, 1, __Value)
#define IE0_GET_TX_DESC_ARFR_HT_EN(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x00, 18, 1)
#define IE0_SET_TX_DESC_ARFR_HT_EN(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x00, 18, 1, __Value)
#define IE0_GET_TX_DESC_ARFR_OFDM_EN(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x00, 17, 1)
#define IE0_SET_TX_DESC_ARFR_OFDM_EN(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x00, 17, 1, __Value)
#define IE0_GET_TX_DESC_ARFR_CCK_EN(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x00, 16, 1)
#define IE0_SET_TX_DESC_ARFR_CCK_EN(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x00, 16, 1, __Value)
#define IE0_GET_TX_DESC_HW_RTS_EN(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x00, 9, 1)
#define IE0_SET_TX_DESC_HW_RTS_EN(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x00, 9, 1, __Value)
#define IE0_GET_TX_DESC_RTS_EN(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x00, 8, 1)
#define IE0_SET_TX_DESC_RTS_EN(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x00, 8, 1, __Value)
#define IE0_GET_TX_DESC_CTS2SELF(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x00, 7, 1)
#define IE0_SET_TX_DESC_CTS2SELF(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x00, 7, 1, __Value)
#define IE0_GET_TX_DESC_RTY_LMT_EN(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x00, 6, 1)
#define IE0_SET_TX_DESC_RTY_LMT_EN(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x00, 6, 1, __Value)
#define IE0_GET_TX_DESC_RTS_SHORT(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x00, 5, 1)
#define IE0_SET_TX_DESC_RTS_SHORT(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x00, 5, 1, __Value)
#define IE0_GET_TX_DESC_DISDATAFB(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x00, 4, 1)
#define IE0_SET_TX_DESC_DISDATAFB(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x00, 4, 1, __Value)
#define IE0_GET_TX_DESC_DISRTSFB(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x00, 3, 1)
#define IE0_SET_TX_DESC_DISRTSFB(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x00, 3, 1, __Value)
#define IE0_GET_TX_DESC_DATA_SHORT(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x00, 2, 1)
#define IE0_SET_TX_DESC_DATA_SHORT(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x00, 2, 1, __Value)
#define IE0_GET_TX_DESC_TRY_RATE(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x00, 1, 1)
#define IE0_SET_TX_DESC_TRY_RATE(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x00, 1, 1, __Value)
#define IE0_GET_TX_DESC_USERATE(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x00, 0, 1)
#define IE0_SET_TX_DESC_USERATE(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x00, 0, 1, __Value)
#define IE0_GET_TX_DESC_RTS_RTY_LOWEST_RATE(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x04, 27, 4)
#define IE0_SET_TX_DESC_RTS_RTY_LOWEST_RATE(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x04, 27, 4, __Value)
#define IE0_GET_TX_DESC_DATA_RTY_LOWEST_RATE(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x04, 22, 5)
#define IE0_SET_TX_DESC_DATA_RTY_LOWEST_RATE(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x04, 22, 5, __Value)
#define IE0_GET_TX_DESC_RTS_DATA_RTY_LMT(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x04, 16, 6)
#define IE0_SET_TX_DESC_RTS_DATA_RTY_LMT(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x04, 16, 6, __Value)
#define IE0_GET_TX_DESC_DATA_BW(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x04, 12, 2)
#define IE0_SET_TX_DESC_DATA_BW(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x04, 12, 2, __Value)
#define IE0_GET_TX_DESC_RTSRATE(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x04, 7, 4)
#define IE0_SET_TX_DESC_RTSRATE(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x04, 7, 4, __Value)
#define IE0_GET_TX_DESC_DATARATE(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x04, 0, 7)
#define IE0_SET_TX_DESC_DATARATE(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x04, 0, 7, __Value)
#define IE1_GET_TX_DESC_IE_END(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x00, 31, 1)
#define IE1_SET_TX_DESC_IE_END(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x00, 31, 1, __Value)
#define IE1_GET_TX_DESC_IE_UP(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x00, 30, 1)
#define IE1_SET_TX_DESC_IE_UP(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x00, 30, 1, __Value)
#define IE1_GET_TX_DESC_IE_NUM(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x00, 24, 4)
#define IE1_SET_TX_DESC_IE_NUM(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x00, 24, 4, __Value)
#define IE1_GET_TX_DESC_AMPDU_DENSITY(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x00, 21, 3)
#define IE1_SET_TX_DESC_AMPDU_DENSITY(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x00, 21, 3, __Value)
#define IE1_GET_TX_DESC_MAX_AGG_NUM(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x00, 16, 5)
#define IE1_SET_TX_DESC_MAX_AGG_NUM(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x00, 16, 5, __Value)
#define IE1_GET_TX_DESC_SECTYPE(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x00, 14, 2)
#define IE1_SET_TX_DESC_SECTYPE(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x00, 14, 2, __Value)
#define IE1_GET_TX_DESC_MOREFRAG(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x00, 13, 1)
#define IE1_SET_TX_DESC_MOREFRAG(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x00, 13, 1, __Value)
#define IE1_GET_TX_DESC_NOACM(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x00, 12, 1)
#define IE1_SET_TX_DESC_NOACM(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x00, 12, 1, __Value)
#define IE1_GET_TX_DESC_BCNPKT_TSF_CTRL(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x00, 11, 1)
#define IE1_SET_TX_DESC_BCNPKT_TSF_CTRL(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x00, 11, 1, __Value)
#define IE1_GET_TX_DESC_NAVUSEHDR(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x00, 10, 1)
#define IE1_SET_TX_DESC_NAVUSEHDR(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x00, 10, 1, __Value)
#define IE1_GET_TX_DESC_HTC(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x00, 9, 1)
#define IE1_SET_TX_DESC_HTC(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x00, 9, 1, __Value)
#define IE1_GET_TX_DESC_BMC(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x00, 8, 1)
#define IE1_SET_TX_DESC_BMC(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x00, 8, 1, __Value)
#define IE1_GET_TX_DESC_TX_PKT_AFTER_PIFS(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x00, 7, 1)
#define IE1_SET_TX_DESC_TX_PKT_AFTER_PIFS(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x00, 7, 1, __Value)
#define IE1_GET_TX_DESC_USE_MAX_TIME_EN(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x00, 6, 1)
#define IE1_SET_TX_DESC_USE_MAX_TIME_EN(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x00, 6, 1, __Value)
#define IE1_GET_TX_DESC_HW_SSN_SEL(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x00, 4, 2)
#define IE1_SET_TX_DESC_HW_SSN_SEL(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x00, 4, 2, __Value)
#define IE1_GET_TX_DESC_DISQSELSEQ(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x00, 3, 1)
#define IE1_SET_TX_DESC_DISQSELSEQ(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x00, 3, 1, __Value)
#define IE1_GET_TX_DESC_EN_HWSEQ(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x00, 2, 1)
#define IE1_SET_TX_DESC_EN_HWSEQ(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x00, 2, 1, __Value)
#define IE1_GET_TX_DESC_EN_HWEXSEQ(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x00, 1, 1)
#define IE1_SET_TX_DESC_EN_HWEXSEQ(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x00, 1, 1, __Value)
#define IE1_GET_TX_DESC_EN_DESC_ID(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x00, 0, 1)
#define IE1_SET_TX_DESC_EN_DESC_ID(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x00, 0, 1, __Value)
#define IE1_GET_TX_DESC_AMPDU_MAX_TIME(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x04, 24, 8)
#define IE1_SET_TX_DESC_AMPDU_MAX_TIME(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x04, 24, 8, __Value)
#define IE1_GET_TX_DESC_P_AID(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x04, 15, 9)
#define IE1_SET_TX_DESC_P_AID(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x04, 15, 9, __Value)
#define IE1_GET_TX_DESC_MOREDATA(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x04, 14, 1)
#define IE1_SET_TX_DESC_MOREDATA(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x04, 14, 1, __Value)
#define IE1_GET_TX_DESC_SW_SEQ(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x04, 0, 12)
#define IE1_SET_TX_DESC_SW_SEQ(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x04, 0, 12, __Value)
#define IE2_GET_TX_DESC_IE_END(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x00, 31, 1)
#define IE2_SET_TX_DESC_IE_END(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x00, 31, 1, __Value)
#define IE2_GET_TX_DESC_IE_UP(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x00, 30, 1)
#define IE2_SET_TX_DESC_IE_UP(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x00, 30, 1, __Value)
#define IE2_GET_TX_DESC_IE_NUM(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x00, 24, 4)
#define IE2_SET_TX_DESC_IE_NUM(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x00, 24, 4, __Value)
#define IE2_GET_TX_DESC_ADDR_CAM(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x00, 16, 8)
#define IE2_SET_TX_DESC_ADDR_CAM(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x00, 16, 8, __Value)
#define IE2_GET_TX_DESC_MULTIPLE_PORT(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x00, 12, 3)
#define IE2_SET_TX_DESC_MULTIPLE_PORT(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x00, 12, 3, __Value)
#define IE2_GET_TX_DESC_RAW(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x00, 11, 1)
#define IE2_SET_TX_DESC_RAW(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x00, 11, 1, __Value)
#define IE2_GET_TX_DESC_RDG_EN(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x00, 10, 1)
#define IE2_SET_TX_DESC_RDG_EN(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x00, 10, 1, __Value)
#define IE2_GET_TX_DESC_SPECIAL_CW(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x00, 7, 1)
#define IE2_SET_TX_DESC_SPECIAL_CW(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x00, 7, 1, __Value)
#define IE2_GET_TX_DESC_POLLUTED(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x00, 6, 1)
#define IE2_SET_TX_DESC_POLLUTED(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x00, 6, 1, __Value)
#define IE2_GET_TX_DESC_BT_NULL(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x00, 5, 1)
#define IE2_SET_TX_DESC_BT_NULL(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x00, 5, 1, __Value)
#define IE2_GET_TX_DESC_NULL_1(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x00, 4, 1)
#define IE2_SET_TX_DESC_NULL_1(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x00, 4, 1, __Value)
#define IE2_GET_TX_DESC_NULL_0(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x00, 3, 1)
#define IE2_SET_TX_DESC_NULL_0(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x00, 3, 1, __Value)
#define IE2_GET_TX_DESC_TRI_FRAME(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x00, 2, 1)
#define IE2_SET_TX_DESC_TRI_FRAME(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x00, 2, 1, __Value)
#define IE2_GET_TX_DESC_SPE_RPT(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x00, 1, 1)
#define IE2_SET_TX_DESC_SPE_RPT(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x00, 1, 1, __Value)
#define IE2_GET_TX_DESC_FTM_EN(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x00, 0, 1)
#define IE2_SET_TX_DESC_FTM_EN(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x00, 0, 1, __Value)
#define IE2_GET_TX_DESC_MBSSID(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x04, 27, 4)
#define IE2_SET_TX_DESC_MBSSID(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x04, 27, 4, __Value)
#define IE2_GET_TX_DESC_GROUP_BIT_IE_OFFSET(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x04, 16, 11)
#define IE2_SET_TX_DESC_GROUP_BIT_IE_OFFSET(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x04, 16, 11, __Value)
#define IE2_GET_TX_DESC_RDG_NAV_EXT(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x04, 15, 1)
#define IE2_SET_TX_DESC_RDG_NAV_EXT(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x04, 15, 1, __Value)
#define IE2_GET_TX_DESC_DROP_ID(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x04, 12, 2)
#define IE2_SET_TX_DESC_DROP_ID(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x04, 12, 2, __Value)
#define IE2_GET_TX_DESC_SW_DEFINE(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x04, 0, 12)
#define IE2_SET_TX_DESC_SW_DEFINE(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x04, 0, 12, __Value)
#define IE3_GET_TX_DESC_IE_END(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x00, 31, 1)
#define IE3_SET_TX_DESC_IE_END(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x00, 31, 1, __Value)
#define IE3_GET_TX_DESC_IE_UP(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x00, 30, 1)
#define IE3_SET_TX_DESC_IE_UP(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x00, 30, 1, __Value)
#define IE3_GET_TX_DESC_IE_NUM(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x00, 24, 4)
#define IE3_SET_TX_DESC_IE_NUM(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x00, 24, 4, __Value)
#define IE3_GET_TX_DESC_DATA_SC(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x00, 20, 4)
#define IE3_SET_TX_DESC_DATA_SC(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x00, 20, 4, __Value)
#define IE3_GET_TX_DESC_SIGNALING_TA_PKT_SC(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x00, 16, 4)
#define IE3_SET_TX_DESC_SIGNALING_TA_PKT_SC(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x00, 16, 4, __Value)
#define IE3_GET_TX_DESC_CTRL_CNT(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x00, 8, 4)
#define IE3_SET_TX_DESC_CTRL_CNT(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x00, 8, 4, __Value)
#define IE3_GET_TX_DESC_CTRL_CNT_VALID(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x00, 1, 1)
#define IE3_SET_TX_DESC_CTRL_CNT_VALID(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x00, 1, 1, __Value)
#define IE3_GET_TX_DESC_SIGNALING_TA_PKT_EN(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x00, 0, 1)
#define IE3_SET_TX_DESC_SIGNALING_TA_PKT_EN(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x00, 0, 1, __Value)
#define IE3_GET_TX_DESC_G_ID(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x04, 24, 6)
#define IE3_SET_TX_DESC_G_ID(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x04, 24, 6, __Value)
#define IE3_GET_TX_DESC_SND_TARGET(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x04, 16, 8)
#define IE3_SET_TX_DESC_SND_TARGET(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x04, 16, 8, __Value)
#define IE3_GET_TX_DESC_CCA_RTS(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x04, 11, 2)
#define IE3_SET_TX_DESC_CCA_RTS(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x04, 11, 2, __Value)
#define IE3_GET_TX_DESC_SND_PKT_SEL(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x04, 9, 2)
#define IE3_SET_TX_DESC_SND_PKT_SEL(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x04, 9, 2, __Value)
#define IE3_GET_TX_DESC_NDPA(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x04, 7, 2)
#define IE3_SET_TX_DESC_NDPA(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x04, 7, 2, __Value)
#define IE3_GET_TX_DESC_MU_DATARATE(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x04, 0, 7)
#define IE3_SET_TX_DESC_MU_DATARATE(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x04, 0, 7, __Value)
#define IE4_GET_TX_DESC_IE_END(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x00, 31, 1)
#define IE4_SET_TX_DESC_IE_END(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x00, 31, 1, __Value)
#define IE4_GET_TX_DESC_IE_UP(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x00, 30, 1)
#define IE4_SET_TX_DESC_IE_UP(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x00, 30, 1, __Value)
#define IE4_GET_TX_DESC_IE_NUM(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x00, 24, 4)
#define IE4_SET_TX_DESC_IE_NUM(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x00, 24, 4, __Value)
#define IE4_GET_TX_DESC_VCS_STBC(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x00, 10, 2)
#define IE4_SET_TX_DESC_VCS_STBC(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x00, 10, 2, __Value)
#define IE4_GET_TX_DESC_DATA_STBC(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x00, 8, 2)
#define IE4_SET_TX_DESC_DATA_STBC(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x00, 8, 2, __Value)
#define IE4_GET_TX_DESC_DATA_LDPC(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x00, 2, 1)
#define IE4_SET_TX_DESC_DATA_LDPC(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x00, 2, 1, __Value)
#define IE4_GET_TX_DESC_GF(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x00, 1, 1)
#define IE4_SET_TX_DESC_GF(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x00, 1, 1, __Value)
#define IE4_GET_TX_DESC_LSIG_TXOP_EN(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x00, 0, 1)
#define IE4_SET_TX_DESC_LSIG_TXOP_EN(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x00, 0, 1, __Value)
#define IE4_GET_TX_DESC_PATH_MAPA(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x04, 30, 2)
#define IE4_SET_TX_DESC_PATH_MAPA(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x04, 30, 2, __Value)
#define IE4_GET_TX_DESC_PATH_MAPB(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x04, 28, 2)
#define IE4_SET_TX_DESC_PATH_MAPB(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x04, 28, 2, __Value)
#define IE4_GET_TX_DESC_PATH_MAPC(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x04, 26, 2)
#define IE4_SET_TX_DESC_PATH_MAPC(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x04, 26, 2, __Value)
#define IE4_GET_TX_DESC_PATH_MAPD(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x04, 24, 2)
#define IE4_SET_TX_DESC_PATH_MAPD(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x04, 24, 2, __Value)
#define IE4_GET_TX_DESC_ANTSEL_A(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x04, 20, 4)
#define IE4_SET_TX_DESC_ANTSEL_A(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x04, 20, 4, __Value)
#define IE4_GET_TX_DESC_ANTSEL_B(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x04, 16, 4)
#define IE4_SET_TX_DESC_ANTSEL_B(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x04, 16, 4, __Value)
#define IE4_GET_TX_DESC_ANTSEL_C(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x04, 12, 4)
#define IE4_SET_TX_DESC_ANTSEL_C(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x04, 12, 4, __Value)
#define IE4_GET_TX_DESC_ANTSEL_D(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x04, 8, 4)
#define IE4_SET_TX_DESC_ANTSEL_D(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x04, 8, 4, __Value)
#define IE4_GET_TX_DESC_NTX_PATH_EN(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x04, 4, 4)
#define IE4_SET_TX_DESC_NTX_PATH_EN(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x04, 4, 4, __Value)
#define IE4_GET_TX_DESC_ANTLSEL_EN(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x04, 3, 1)
#define IE4_SET_TX_DESC_ANTLSEL_EN(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x04, 3, 1, __Value)
#define IE4_GET_TX_DESC_TXPWR_OFSET_TYPE(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x04, 0, 2)
#define IE4_SET_TX_DESC_TXPWR_OFSET_TYPE(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x04, 0, 2, __Value)
#define IE5_GET_TX_DESC_IE_END(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x00, 31, 1)
#define IE5_SET_TX_DESC_IE_END(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x00, 31, 1, __Value)
#define IE5_GET_TX_DESC_IE_UP(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x00, 30, 1)
#define IE5_SET_TX_DESC_IE_UP(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x00, 30, 1, __Value)
#define IE5_GET_TX_DESC_IE_NUM(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x00, 24, 4)
#define IE5_SET_TX_DESC_IE_NUM(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x00, 24, 4, __Value)
#define IE5_GET_TX_DESC_LEN1_L(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x00, 17, 7)
#define IE5_SET_TX_DESC_LEN1_L(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x00, 17, 7, __Value)
#define IE5_GET_TX_DESC_LEN0(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x00, 4, 13)
#define IE5_SET_TX_DESC_LEN0(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x00, 4, 13, __Value)
#define IE5_GET_TX_DESC_PKT_NUM(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x00, 0, 4)
#define IE5_SET_TX_DESC_PKT_NUM(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x00, 0, 4, __Value)
#define IE5_GET_TX_DESC_LEN3(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x04, 19, 13)
#define IE5_SET_TX_DESC_LEN3(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x04, 19, 13, __Value)
#define IE5_GET_TX_DESC_LEN2(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x04, 6, 13)
#define IE5_SET_TX_DESC_LEN2(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x04, 6, 13, __Value)
#define IE5_GET_TX_DESC_LEN1_H(__pTxDescIE)    LE_BITS_TO_4BYTE(__pTxDescIE + 0x04, 0, 6)
#define IE5_SET_TX_DESC_LEN1_H(__pTxDescIE, __Value)    SET_BITS_TO_LE_4BYTE(__pTxDescIE + 0x04, 0, 6, __Value)

#endif

#endif
